1. Field of the Invention
The present invention is related to the design of mechanical devices. In particular the present invention provides a system for the kinematic design of mechanical linkages in computer-aided engineering systems.
2. Description of Related Art
Linkages are found in a large variety of everyday objects. For example, the hinge for an automobile hood, an automobile suspension, aircraft landing gear, assembly line mechanisms, the diaphragm in a camera lens, cranes, typewriter keys, prosthetic devices, bicycle derailleurs, and oil field logging tools are all comprised of linkages. Examination of these mechanisms reveals that a small collection of moving parts can produce very complex motions.
Usually, a kinematic design is the first step in the design of a linkage. Kinematic design is concerned solely with how the mechanism will move, as constrained by its geometric and topological properties. Once a design with satisfactory kinematic properties has been obtained, the designer will take into consideration such things as the physical shape of the links, mass properties of the parts, material strengths, and joint tolerances. A static force analysis may then be done to determine the detailed design of the parts. This may be followed, as necessary, by a quasi-static analysis and a detailed dynamic analysis to determine operating forces, dynamic stresses, maximum velocities and accelerations, vibration modes, etc.
In order to perform the kinematic design of a new linkage, a designer of the linkage must know how to select the types and number of parts, their connectivity, their sizes, and geometries. These are difficult problems for several reasons:
a) A single linkage topology can have many qualitatively distinct ranges of operation. An infinitesimal change in one parameter value can cause the linkage to move from one behavior operating region into another behavioral region with very different characteristics.
b) Equations of motion are quite complex, even for the simplest linkage. Synthesis--which involves inverting the description of the device's behavior--is thus very difficult.
c) A designer must create a linkage which not only has particular motion properties, but also meets other constraints (e.g., the linkage must be readily manufacturable, meet spatial constraints, etc.).
d) Design problems are usually over or under constrained; they are rarely exactly constrained.
The kinematic design of linkages has been the focus of research for over a hundred years. For example, in Burmester, Lehrbuch der Kinematic, A. Felix, Leipzig (1888), a method of performing kinematic designs was proposed. In Burmester, a series of geometric theorems were used to determine linkage behavior. Others utilizing similar techniques include Erdman et al., Mechanism Design, Prentice Hall, Englewood Cliffs, N.J. (1984), and Hall, Kinematics and Linkage Design, Wavelength Press (1986).
Synthesis techniques based on Burmester's theory have many limitations that limit their practical use by many designers. The theory is generally limited to 4-bar and 6-bar planar mechanisms and can economically handle only 4 to 5 "precision points," or points on interest in the mechanism's path. The number of and types of constraints that can be accommodated by Brumester Theory is limited; for example, it is generally difficult to constrain the positions of the ground pivots to specific areas in space. If a problem is overconstrained (e.g., a user may need to specify more than 5 precision points) Burmester Theory is generally not useful because it has not been possible to find a close, but not exact, solution. Finally, the techniques require a fair amount of expertise and mathematical sophisitcation on the part of the users.
In some domains, structured synthesis techniques make it possible to create whole designs from a functional specification automatically. These techniques tend to work in situations where some subset of the following problem features are present:
a) The space of possible design primitives is finite and parameterizable in some discrete or simple fashion, as in digital circuit design systems and structural design programs. A structured synthesis technique for circuit design is described in, for example, Kowalski, "The VLSI Design Automation Assistant" (1984).
b) A discrete temporal abstraction suffices to describe behavior, transforming a problem with continuously varying parameters into a problem with a finite set of discrete parameters, as in VLSI circuit design. See, for example, Mead et al., "Introduction to VLSI Systems" (1980).
c) The continuously varying parameters of the problem are well-behaved, allowing for such techniques as monotonicity analysis, which effectively partition the parameter-space into a small number of easily characterized regions. See, for example, Cagan et al., "Innovative Design of Mechanical Structures From First Principles " (1988).
Unfortunately, these techniques do not work well in all design domains. In the mechanical engineering domain, for example, engineered objects may have equations of motion that are quite complex, highly non linear, and difficult to comprehend. Trying to understand these descriptions well enough to synthesize new designs is an extremely difficult task. Thus, much design proceeds by the designer building and/or simulating devices, analyzing the designs, and gaining intuition about their behavior over the course of design modification. As experience in the domain is gained, the design cycle is shortened, because the designer has a better idea of what will and will not work for a given problem.
Relying on one's own or on others' experience is presently the most prevalent means of designing mechanisms. Often, designers repeatedly construct the same sort of mechanisms and do not view their domain as linkage design. These designers develop their own terminology, design criteria, and solution methods; Burmester theory and other linkage synthesis techniques are unknown to them. An example of this phenomenon is found in the automobile industry. This industry employs suspension designers, window crank designers, hood mechanism designers, etc., but few of these people have experience in the general problem of linkage design.
Experience with one narrow segment of linkage design does not confer the designer with any special competence at designing other types of mechanisms. When the suspension designer must create a different type of linkage, it is a frustrating, time-consuming task. The analytic tools are hard to use, the design space is too large and convoluted to keep track of easily, and the designer's intuition gained from previous problems often proves useless. Further, because of the complexity and non-continuous nature of the device behaviors, the traditional expert systems paradigm of coupling prototypical examples with a set of design modification operators is not well suited to synthesizing mechanisms, both from the perspective of efficiency and of modelling what human designers do.
In an attempt to overcome these problems, the ADAMS program (Automatic Dynamic Analysis of Mechanical Systems) and IMP (Integrated Mechanisms Program) have been used to simulate mechanical systems. In general, both of these programs use some initial configuration of a mechanical system and project or simulate the position, velocity, acceleration, static, and dynamic forces in the system in response to an applied force by stepping through differentially-small time increments. The ADAMS and IMP programs are described, along with a wide variety of other systems, in Shigley et al., Theory of Machines and Mechanisms (1980), which is incorporated herein by reference for all purposes.
A variety of problems arise in the use of the ADAMS program and other similar programs. For example, it is often found that the user has over-constrained the system at which point the simulator ignores certain constraints which have been applied by the user, without his or her knowledge. Programs like ADAMS are specialized for the dynamic analysis of mechanisms, although they claim to be useful for kinematic analysis as well. In a dynamic simulation of a mechanism, mass and interia terms allow the simulation to stay on a single branch of the solution space (there are multiple solutions to both the dynamic and kinematic equations). In a kinematic simulation, there is no mass or interia information, so the simulator exhibits a tendency to "bounce" back and forth between different branches of the solution space, unless the step size used is extremely small.
Further, in kinematic optimization it is often desirable to "re-assemble" a mechanism at a few selected points (the points of interest), rather than simulating a whole cycle of the mechanism. This substantially reduces computer usage and the time necessary to create a design. ADAMS and other similar programs cannot reliably reassemble a mechanism at a few selected points, because when the mechanism is assembled, the mechanism is just as likely to assemble in one configuration as in the other (assuming kinematic assembly only). In a kinematic simulation, ADAMS attempts solves this problem by calling a "dynamic solver" when necessary. The use of a dynamic solver precludes the ability to assemble the mechanism at a select set of points in a reliable and repeatable fashion. The ADAMS program and others are, therefore, incapable of assembling a mechanism at a particular driving input and a particular configuration.
Kota et al., "Dwelling on Design," Mechanical Engineering (August 1987) pp. 34-38 describe a method of performing kinematic synthesis (MINNDWELL) in which a user creates a dwell mechanism by manually or semiautomatically designing an output diad (2-bars) to add on to a four-bar mechanism selected from a catalog. No optimization is performed on the dwell mechanism. Further, by using a catalog only, without any form of optimization, the scope of problems which may be solved is extremely limited; to solve a large variety of problems the catalog would be unmanageably large.
In order to optimize a broad range of mechanical linkages various statistical methods have been proposed including simulated annealing, continuation methods, and gradient based optimization. In simulated annealing, an error function is determined as a function of one or more parameters. The error function is minimized by selecting two values of the parameter, determining the error function for the values, and comparing the values of the error function. If the second value of the parameter produces a lower error function, this value of the parameter is selected. If the second value parameter produces a higher value of the error function it may be selected depending on the step and Boltzman probability distribution. Simulated annealing is described in Van Laarhoven et al., "Simulated Annealing: Theory and Applications," D. Reider Pub. Co. (1987).
From the above it is seen that an improved method of performing kinematic analysis is desired.